package org.me.marble;

import java.nio.*;
import javax.microedition.khronos.opengles.GL10;

/**
 *
 * @author tungi
 */

public class Fog{
    private float[] color;
    private FloatBuffer fog;
    private int fogFilter=0;
    private float density=0.1f;
    private int fogMode[]={GL10.GL_EXP,GL10.GL_EXP2,GL10.GL_LINEAR};

    Fog(){
        //create a buffer with fog color
        color=new float[]{0.5f,0.5f,0.5f,1.0f};
        fog=BufferFactory.MakeFloatBuffer(color);
    }

    public void init(GL10 gl){//plussz clearcolor a köd színével megegyezően, hogy jó legyen
        gl.glFogf(GL10.GL_FOG_MODE,fogMode[fogFilter]);
        gl.glFogfv(GL10.GL_FOG_COLOR,fog);
        gl.glFogf(GL10.GL_FOG_DENSITY,density);
        gl.glHint(GL10.GL_FOG_HINT,GL10.GL_DONT_CARE);
        gl.glFogf(GL10.GL_FOG_START,0.0f);
        gl.glFogf(GL10.GL_FOG_END,5.0f);
        gl.glEnable(GL10.GL_FOG);
    }

    public void draw(GL10 gl){
        gl.glFogf(GL10.GL_FOG_MODE,fogMode[fogFilter]);
    }

    public float[] getColor(){
        return color;
    }

    public void setDensity(float density){
        this.density=density;
    }
}
